/* eslint-disable */

import { AxiosRequestConfig } from 'axios';
import { request } from '../../utils/request';

export interface PostConfTrackTryListenPageRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    current: number;
    pageSize: number;
    total: number;
    list: Array<{
      id: number;
      trackList: string; // 歌曲track_id, 逗号分隔
      mediaList: string; // 歌曲对应歌曲文件列表
      markType: number; // 标记来源
      start: number; // 开始时间
      end: number; // 结束时间
      remarks: string; // 备注
      operator: string; // 操作人
      insertTime: string; // 插入时间
      modifyTime: string; // 更新时间
    }>;
  };
  traceId: string;
}

/**
 * 分页查询
 */
export async function postConfTrackTryListenPage(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostConfTrackTryListenPageRes> {
  return request(data, {
    url: '/conf/track/tryListen/page',
    method: 'post',
    ...config,
  });
}

export interface GetConfTrackTryListenIdRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    id: number;
    trackList: string; // 歌曲track_id, 逗号分隔
    mediaList: string; // 歌曲对应歌曲文件列表
    markType: number; // 标记来源
    start: number; // 开始时间
    end: number; // 结束时间
    remarks: string; // 备注
    operator: string; // 操作人
    insertTime: string; // 插入时间
    modifyTime: string; // 更新时间
  };
  traceId: string;
}

/**
 * 获取歌曲试听配置详情
 */
export async function getConfTrackTryListenId(
  id: string | number,
  data?: any,
  config?: AxiosRequestConfig,
): Promise<GetConfTrackTryListenIdRes> {
  return request(data, {
    url: `/conf/track/tryListen/${id}`,
    method: 'get',
    ...config,
  });
}

export interface PostConfTrackTryListenRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: boolean; // 返回数据
  traceId: string;
}

/**
 * 歌曲试听配置录入
 */
export async function postConfTrackTryListen(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostConfTrackTryListenRes> {
  return request(data, {
    url: '/conf/track/tryListen',
    method: 'post',
    ...config,
  });
}

export interface PutConfTrackTryListenIdRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: boolean; // 返回数据
  traceId: string;
}

/**
 * 歌曲试听配置更新
 */
export async function putConfTrackTryListenId(
  id: string | number,
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PutConfTrackTryListenIdRes> {
  return request(data, {
    url: `/conf/track/tryListen/${id}`,
    method: 'put',
    ...config,
  });
}

export interface PostConfTrackTryListenFilter_track_listen_idRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    idList: Array<number>;
    existIdList: Array<number>;
  };
  traceId: string;
}

/**
 * ID过滤
 */
export async function postConfTrackTryListenFilter_track_listen_id(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostConfTrackTryListenFilter_track_listen_idRes> {
  return request(data, {
    url: '/conf/track/tryListen/filter_track_listen_id',
    method: 'post',
    ...config,
  });
}
